package com.sy.olddriver.handler;

import com.sy.olddriver.annotations.RequestMapping;
import com.sy.olddriver.dto.Result;
import com.sy.olddriver.service.CartService;
import com.sy.olddriver.service.impl.CartServiceImpl;
import com.sy.olddriver.utils.HttpUtils;
import com.sy.olddriver.utils.ParamUtils;

/**
 * 购物车模块对应的处理器
 *
 * @author Administrator
 */
@RequestMapping("cart")
public class CartHandler {
    private CartService cartService = new CartServiceImpl();

    /**
     * 添加购物车操作
     *
     * @return 添加购物车操作的返回结果
     */
    @RequestMapping("addToCart")
    public Result addToCart() {
        //获取前端传递的产品编号和数量
        String pid = ParamUtils.getParam("pid");
        String count = ParamUtils.getParam("count");
        return cartService.addToCart(pid, count);
    }

    /**
     * 获取购物车中所有产品信息
     *
     * @return 购物车中所有产品信息
     */
    @RequestMapping("all")
    public Result getCartItems() {
        return cartService.getCartItems();
    }

    /**
     * 清空购物车
     *
     * @return 清空购物车以后的结果
     */
    @RequestMapping("clear")
    public Result clearCart() {
        return cartService.clearCart();
    }

    /**
     * 删除购物车中的一条记录
     *
     * @return 删除一条记录后的结果
     */
    @RequestMapping("delOne")
    public Result delOneCartItem() {
        //获取前端发送过来的商品编号
        String pid = ParamUtils.getParam("pid");
        return cartService.delOneCartItem(pid);
    }

    /**
     * 用来更新购物车中的商品的信息
     *
     * @return 购物车中商品更新以后的购物车数据
     */
    @RequestMapping("update")
    public Result updateCartItem() {
        //获取前端带来的产品编号和要更新的数量
        String pid = ParamUtils.getParam("pid");
        String count = ParamUtils.getParam("count");
        return cartService.updateCartItem(pid, count);
    }
}
